package br.com.sgc.entities.geral;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import br.com.sgc.entities.seguranca.Usuario;
import br.com.sgc.enuns.TipoClinica;


@Entity
@Table(schema="geral")
public class Clinica implements Serializable {

	private static final long serialVersionUID = -1586223656349797799L;
	
	@Id
	@SequenceGenerator(sequenceName="geral.seq_clinica", name="SEQ", allocationSize=1)
	@GeneratedValue(strategy=GenerationType.SEQUENCE,  generator="SEQ")
	private Long id;
	
	@Column(name="nome_clinica")
	private String nomeClinica;
	
	private byte[] logotipo;
	
	@Column(name="documento_clinica")
	private String documentoClinica;
	
	@Column(name="endereco_clinica")
	private String enderecoClinica;
	
	@Column(name="horario_abertura")
	private String horarioAbertura;
	
	@Column(name="horario_fechamento")
	private String horarioFechamento;
	
	@Column(name="tipo_clinica")
	private TipoClinica tipoClinica;
	
	@OneToMany(mappedBy = "clinica", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
	private List<Usuario> usuariosVinculados = new ArrayList<Usuario>();

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public byte[] getLogotipo() {
		return logotipo;
	}

	public void setLogotipo(byte[] logotipo) {
		this.logotipo = logotipo;
	}

	public String getDocumentoClinica() {
		return documentoClinica;
	}

	public void setDocumentoClinica(String documentoClinica) {
		this.documentoClinica = documentoClinica;
	}

	public String getEnderecoClinica() {
		return enderecoClinica;
	}

	public void setEnderecoClinica(String enderecoClinica) {
		this.enderecoClinica = enderecoClinica;
	}

	public String getHorarioAbertura() {
		return horarioAbertura;
	}

	public void setHorarioAbertura(String horarioAbertura) {
		this.horarioAbertura = horarioAbertura;
	}

	public String getHorarioFechamento() {
		return horarioFechamento;
	}

	public void setHorarioFechamento(String horarioFechamento) {
		this.horarioFechamento = horarioFechamento;
	}

	public List<Usuario> getUsuariosVinculados() {
		return usuariosVinculados;
	}

	public void setUsuariosVinculados(List<Usuario> usuariosVinculados) {
		this.usuariosVinculados = usuariosVinculados;
	}

	public String getNomeClinica() {
		return nomeClinica;
	}

	public void setNomeClinica(String nomeClinica) {
		this.nomeClinica = nomeClinica;
	}

	public TipoClinica getTipoClinica() {
		return tipoClinica;
	}

	public void setTipoClinica(TipoClinica tipoClinica) {
		this.tipoClinica = tipoClinica;
	}
	
	
}
